#ifndef CTESTSCREEN_H
#define CTESTSCREEN_H

#include "screens/CScreen.h"
#include "Physics2d.h"
#include "CAudioManager.h"

class CTestScreen : public CScreen
{
public:
    CTestScreen( QString name ) : CScreen( name ) {}
    ~CTestScreen();

    void load(CGraphics *gl);
    void unload(CGraphics *gl);

    int update(CInput *in);
    void draw(CGraphics *gl);

    void setGameSettings( int gameType, int players );

private:

    // žaidimo tipo kintamieji
    int gameType,
        players;

    QFont font;
    GLuint textures[11];

    // pagalbiniai kintamiejis
    int col[16][3];

    // fizikos kintamieji
    QList<TSpline> splines; // Sienos
    QList<TBall> balls;     // kamuoliukai
    QList<TBall> holes;     // skylės

    // žaidimo logikos kitamieji
    int playersTurn;        // žaidėjas kurio dabar eilė
    int stripedPlayer;      // žaidėjas kuriam priklauso dryžuoti kamuoliukai
    int gameState;          // žaidimo stadija, 0 - taikymas,
    QList<int> pocketedBalls;   // įmušų kamuoliukų masyvas
    int firstHitBall;       // pirmas kliudytas kamuoliukas
    bool touchedSpline;      // ar buvo paliesta siena
    int lowestBall;          // mažiausio numerio kamuoliukas
    int ballsLeft[3];       // likusių įmušti kamuliukų skaičius
    int winner;             // laimėjęs žaidėjas
    double timeLeft;
    int points;

    int doLogic( const double &frameTime );
    int update8Ball( CInput *in, const double &frameTime );
    int update9Ball( CInput *in, const double &frameTime );
    int updateQuickPool( CInput *in, const double &frameTime );
    void findFirstCollision();
    void drawBall( CGraphics *gl, const TBall &b );

    double hitForce;        // kamuoliuko mušimo jėga
    CVect2d hitDirection;
    CVect2d hitPoint;
    CVect2d collidePos;
    CVect2d bounceDir, bounceDir2;
    int bounceBall;

    QString status;
    double statusTime;

    //CAudioManager am;

};

#endif // CTESTSCREEN_H
